/*
 * Propiedad de Fernando Lorenta
 * Ejercicios Java PCarrier
 * 
 * En esta Clase es donde tendremos las implementaciones de código que tendrán lugar
 * en VentanaPrincipalWindow
 */

package ventanaPrincipal;

import Archivos.EscribirEnArchivo;
import ventanaInsertModBorrarEjerBoletin.VentanaInsertModBorrarEjerBoletin;
import cargarTablaEjerBoletin.CargarTablaEjerBoletinWindow;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.JButton;
import objetos.ObjetoBoletin;

/**
 *
 * @author fernan
 */
public class VentanaPrincipal implements ActionListener {

    private VentanaPrincipalWindow ventanaPrincipalWindow;
    
    private JButton salirBTN;
    
    private ArrayList contenedorBoletines = null, contenedorEjerjcicios = null;
    //Esta variable me sirve para controlar que sea la primera vez que cargo el JComboBox ya que este
    //al seleccionar el primer elemento hace que salte su ActionListener duplicando todo.
    private int vezEjecutado = 1;
    
    public VentanaPrincipal() {
        
    }//public VentanaPrincipal()
    
    public VentanaPrincipal(VentanaPrincipalWindow ventanaPrincipalWindow) {
        
        this.ventanaPrincipalWindow = ventanaPrincipalWindow;
        
        //Aquí cargo el JComboBox de Boletines y la tabla de Ejercicios
        Thread ccHilo = new Thread(new CargarContenido(ventanaPrincipalWindow, this));
        ccHilo.start();
        
//        contenedorEjerjcicios = new ArrayList();
//        
//        contenedorEjerjcicios.add(new ObjetoEjercicio(12, "Clase 12", "Nombre 12", 108, "Descripcion 12"));
//        contenedorEjerjcicios.add(new ObjetoEjercicio(1, "Clase 2", "Nombre 2", 120, "Descripcion 2"));
//        contenedorEjerjcicios.add(new ObjetoEjercicio(1, "Clase 3", "Nombre 3", 120, "Descripcion 3"));
        
//        contenedorBoletines = new ArrayList();
//         
//        contenedorBoletines.add(new ObjetoBoletin(1, "1"));
//        contenedorBoletines.add(new ObjetoBoletin(2, "2"));
//        contenedorBoletines.add(new ObjetoBoletin(3, "3"));
//        contenedorBoletines.add(new ObjetoBoletin(102, "102"));
//        contenedorBoletines.add(new ObjetoBoletin(103, "103"));
//        contenedorBoletines.add(new ObjetoBoletin(105, "105"));
//          contenedorBoletines.add(new ObjetoBoletin(120, "120"));
//          contenedorBoletines.add(new ObjetoBoletin(110, "110"));
//          contenedorBoletines.add(new ObjetoBoletin(108, "108"));
//        
//        Thread eeaHilo = new Thread(new EscribirEnArchivo(this, 1));
//        eeaHilo.start();
//        
//         Thread eeaHilo = new Thread(new EscribirEnArchivo(this, 2));
//        eeaHilo.start();
        
//        LeerDeArchivo lda = new LeerDeArchivo(this, 2);
//        
//        for(Object obj:contenedorEjerjcicios) {
//            System.out.println("Boletín: " + ((ObjetoEjercicio)obj).getBoletin());
//        }
        
    }//public VentanaPrincipal(VentanaPrincipalWindow ventanaPrincipalWindow)
    
    @Override
    public void actionPerformed(ActionEvent evento) {
        
        if (evento.getSource() == ventanaPrincipalWindow.getSalirBTN() || evento.getSource() == ventanaPrincipalWindow.getSalir()) {
            System.exit(0);
        }
        
        if (evento.getSource() == ventanaPrincipalWindow.getBoletinJCBX()) {
            //Esto lo hago para que no salte el actionListener cuando se carga el JComboBox seleccionando la primera
            if (vezEjecutado==1) {
                vezEjecutado = 2;
            }
            else {
                Thread cteHilo = new Thread(new CargarTablaEjerBoletinWindow(ventanaPrincipalWindow, this, 2));
                cteHilo.start();
                ventanaPrincipalWindow.getDescripcionJTA().setText(null);
            }
        }
        
        if (evento.getSource() == ventanaPrincipalWindow.getEjerJMI()) {
            VentanaInsertModBorrarEjerBoletin vimbeb = new VentanaInsertModBorrarEjerBoletin(ventanaPrincipalWindow, this, 2);
        }
    }//public void actionPerformed(ActionEvent e)

    public ArrayList getContenedorBoletines() {
        return contenedorBoletines;
    }//public ArrayList getContenedorBoletines()

    public void setContenedorBoletines(ArrayList contenedorBoletines) {
        this.contenedorBoletines = contenedorBoletines;
    }//public void setContenedorBoletines(ArrayList contenedorBoletines)

    public ArrayList getContenedorEjerjcicios() {
        return contenedorEjerjcicios;
    }//public ArrayList getContenedorEjerjcicios()

    public void setContenedorEjerjcicios(ArrayList contenedorEjerjcicios) {
        this.contenedorEjerjcicios = contenedorEjerjcicios;
    }//public void setContenedorEjerjcicios(ArrayList contenedorEjerjcicios)

    public int getVezEjecutado() {
        return vezEjecutado;
    }

    public void setVezEjecutado(int vezEjecutado) {
        this.vezEjecutado = vezEjecutado;
    }

    public VentanaPrincipalWindow getVentanaPrincipalWindow() {
        return ventanaPrincipalWindow;
    }
    
    
}//public class VentanaPrincipal implements ActionListener
